Most modern databases exhibit the characteristic of being either totally available or totally unavailable. Maintenance or disaster recovery schemes render the database unavailable during the time of maintenance or recovery. The unit of availability in such a scheme is the entire database. FIG. 1 depicts a prior art database 100, partitioned into tables A, B, and C, 101, 102, and 103 respectively. Each table uses a single log stream, 105, to log changes in row and other data to keep the database transactionally consistent. As the size of the database increases and as more tables are added to the database, a greater amount of data must be written to the log stream, 105. The log stream becomes a bottleneck that leads to significant manageability and performance issues that increasingly push the limits of the hardware the databases reside upon. Eventually, the database becomes bottlenecked by the limits of the single log stream and its accessibility and speed with regard to recovering database information.
One prior art option to this problem is to better manage the log stream by splitting up the single logs into multiple log streams. FIG. 2 depicts a database 200, partitioned into Tables D, E, and F, 201, 202, 203 respectively, and shared but separate log stream data sets 207, 208, and 209 respectively. In order to keep track and mange the log stream data sets, a co-ordination mechanism, 205 was introduced. However, as this solves the problem of bottlenecking of the log stream data, it generates another problem in that the coordination mechanism 205 is eventually subject to slowness as the size of the database grows. Also, the recovery of only a single table, for example Table D, 201, may require the use of multiple data log streams 207, 208, and 209 as the data log stream for Table D is distributed across all the data log streams. Although the architecture of FIG. 2 is an improvement of that of FIG. 1, it still has limiting speed performance due to the bottleneck of the coordination mechanism 205 and the entire database is still unavailable during a recovery operation involving the log data streams.
Thus, there is a need for an architecture that may allow for an improvement in speed with respect to performance bottlenecks and a desire to have a database be at least partially available during a recovery action. The present invention addresses the aforementioned needs and solves them with additional advantages as expressed herein.